package com.svms.save.services;

import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.svms.save.entitys.SvdaYhb;
import com.svms.save.entitys.SvdaZwgxx;
import com.svms.save.entitys.SvdaZwgxxExample;
import com.svms.save.entitys.SvdaZwxxx;
import com.svms.save.mapper.SvdaZwgxxMapper;
import com.svms.save.utils.SysCode;

/**
 * 置物柜信息
 * @author xuyang
 *
 */
public abstract class SvdaZwgxxService extends BaseService{
	@Autowired
	private SvdaZwgxxMapper zwgxxMapper;
	@Autowired
	private SvdaZwxxxService zwxManager;
	/**
	 * 保存
	 * @param yh
	 * @param zwgxx
	 * @return
	 */
	public int doSave(SvdaYhb yh,SvdaZwgxx zwgxx) {
		int r = 0;
		super.setEntityDefVal(yh, zwgxx);
		if(null == zwgxx.getObjectid()) {
			r = zwgxxMapper.insert(zwgxx);
			zwgxx.setCzbs(SysCode.CZBS_ADD); 
			//首次新增生成置物箱信息
			if(r > 0) {
				List<SvdaZwxxx> zwxList = zwxManager.generateZwxxx(yh, zwgxx);
				r = zwxManager.doSaveList(yh, zwxList);
			}
		}else {
			r = zwgxxMapper.updateByPrimaryKeyWithBLOBs(zwgxx);
			zwgxx.setCzbs(SysCode.CZBS_UPDATE);
		}
		return r;
	}
	/**
	 * 测试生成置物箱
	 * @param yh
	 * @param zwgxx
	 * @return
	 */
	public List<SvdaZwxxx> testZwxxx(SvdaYhb yh,SvdaZwgxx zwgxx){
		List<SvdaZwxxx> zwxList = zwxManager.generateZwxxx(yh, zwgxx);
		return zwxList;
	}
	
	/**
	 * 根据主键获取详情
	 * @param objectid
	 * @return
	 */
	public SvdaZwgxx findById(Long objectid) {
		return zwgxxMapper.selectByPrimaryKey(objectid);
	}
	
	/**
	 * 查询
	 * @param page
	 * @param wzxx
	 * @return
	 */
	public List<SvdaZwgxx> queryList(SvdaZwgxx zwgxx){
		List<SvdaZwgxx> list = new ArrayList<SvdaZwgxx>();
		if(null != zwgxx) {
			SvdaZwgxxExample ex = new SvdaZwgxxExample();
			SvdaZwgxxExample.Criteria cri = ex.createCriteria();
			//置物柜位置信息关联编号
			if(StringUtils.isNotBlank(zwgxx.getGlwzbh())) {
				cri.andGlwzbhEqualTo(zwgxx.getGlwzbh());
			}
			//置物柜名称
			if(StringUtils.isNotBlank(zwgxx.getZwgmc())) {
				cri.andZwgmcLike("%"+zwgxx.getZwgmc()+"%");
			}
			//置物柜编号
			if(StringUtils.isNotBlank(zwgxx.getZwgbh())) {
				cri.andZwgbhEqualTo(zwgxx.getZwgbh());
			}
			cri.andCzbsNotEqualTo("3");
			ex.setOrderByClause("czsj desc");
			list = zwgxxMapper.selectByExampleWithBLOBs(ex);
		}
		return list;
	}
	
	public SvdaZwgxx getZwgxx(String bh,String glwzbh) {
		if(StringUtils.isNotBlank(bh)) {
			SvdaZwgxxExample ex = new SvdaZwgxxExample();
			SvdaZwgxxExample.Criteria cri = ex.createCriteria();
			cri.andZwgbhEqualTo(bh);
			cri.andGlwzbhEqualTo(glwzbh);
			List<SvdaZwgxx> list = zwgxxMapper.selectByExample(ex);
			if(null != list && list.size() > 0) {
				return list.get(0);
			}
		}
		return null;
	}
}
